package Week3;

import java.util.*;

public class Day16 {
}

//牛客:REAL433 字符串替换
class StringFormat {
    public String formatString(String A, int n, char[] arg, int m) {
        // write code here
        //创建字符串接收字符
        StringBuffer ret = new StringBuffer();
        int j = 0;
        //遍历
        for(int i = 0; i < n; i++){
            //如果不为%就直接放入
            if(A.charAt(i) != '%'){
                ret.append(A.charAt(i));
            }else{
                //为%中不越界前提下且它的下一个字符为s,
                if(i < n && A.charAt(i + 1) == 's'){
                    ret.append(arg[j++]);//将arg数组中的元素添加到字符串中
                    i++;//跳过这两个字符
                }else{
                    //上述条件不成立就正常添加
                    ret.append(A.charAt(i));
                }
            }
        }
        //如果都替换完后arg数组中还存在元素就将他们放入最后
        while(j < m){
            ret.append(arg[j++]);
        }
        return ret.toString();
    }
}

//牛客:神奇数
class Main9 {
    //判断是否为质数
    public static boolean isPrim(int x){
        for(int i = 2; i <= Math.sqrt(x); i++){
            if(x % i == 0){
                return false;
            }
        }
        return true;
    }
    public static int check(int x){
        //存放数字的每一位
        int[] arr = new int[10];
        int n = 0;
        //取数字的每一位
        while(x != 0){
            arr[n++] = x % 10;
            x /= 10;
        }

        //这个数字的每一位进行组合
        for(int i = 0; i < n; i++){
            for(int j = 0; j < n; j++){
                //注意不能存在前导0，同时这两位数不能是同一个数
                if(arr[i] != 0 && i != j){
                    //判断是否为质数
                    if(isPrim(arr[i] * 10 + arr[j])){
                        //如果是返回1
                        return 1;
                    }
                }
            }
        }
        return 0;
    }
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a = in.nextInt();
        int b = in.nextInt();
        int ret = 0;
        //数字区间一定是从10开始的因为如果我们是单个数是无法挑选两个数进行组合的
        for(int i = Math.max(a,10); i <= b; i++){
            //记录能够形成神奇数的个数
            ret += check(i);
        }
        System.out.println(ret);
    }
}

//牛客:HJ63 DNA序列
class Main10 {
    //滑动窗口
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        String s = in.next();
        int n = in.nextInt();

        int m = s.length();
        int max = 0 , l = 0;//记录最大个数和开始位置
        int left = 0 , right = 0 , count = 0;
        while(right < m){
            //入窗口
            //为G 和 C 两个字母个数加一
            if(s.charAt(right) == 'C' || s.charAt(right) == 'G'){
                count++;
            }
            //入窗口大小超过指定长度，出窗口
            while(right - left + 1 > n){
                //最左边的元素为G 和 C 两个字母时个数减一
                if(s.charAt(left) == 'C' || s.charAt(left) == 'G') count--;
                //出窗口
                left++;
            }
            //如果长度正好等于指定长度
            if(right - left + 1 == n){
                //判断此时区间G 和 C 两个字母的个数是否为最多的
                if(count > max){
                    //是就更新个数和左区间
                    max = count;
                    l = left;
                }
            }
            right++;
        }
        //打印G 和 C 两个字母个数最多的第一个区间的所有字符
        for(int i = l; i < l + n; i++){
            System.out.print(s.charAt(i));
        }
    }
}